package com.mdl.jedis;

import org.apache.log4j.Logger;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @Desc
 * @Author madengling
 * @Time 2020/12/14 15:12
 */
public class JedisDemo1 {
    private static Logger logger = Logger.getLogger(JedisDemo1.class);

    /**
     * 单实例的测试
     * 需要将连接的jedis的防火墙端口开放，
     * 启动：1.vim /etc/sysconfig/iptables
     *      2.-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
     *      3.service iptables restart重启防火墙
     */
    @Test
    public void demo1(){
        //1.设置IP地址和端口
        Jedis jedis = new Jedis("192.168.238.131",6379);
        //2.保存数据
        jedis.set("name","mdl");
        //3.获取数据
        String name = jedis.get("name");
        logger.info(name);
        jedis.close();
    }

    /**
     * 使用连接池的方式连接
     */
    @Test
    public void demo2(){
        JedisPoolConfig config = new JedisPoolConfig();
        //设置最大连接数
        config.setMaxTotal(30);
        //设置最大空闲连接数
        config.setMaxIdle(10);
        //获得连接池
        JedisPool jedisPool = new JedisPool(config,"192.168.238.131",6379);
        //获得核心对象
        Jedis jedis = null;
        try {
            //通过连接池获得连接
            jedis = jedisPool.getResource();
            //设置数据
            jedis.set("name","张三");
            //获取数据
            String name = jedis.get("name");
            logger.info(name);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //释放资源
            if(jedis != null){
                jedis.close();
            }
            if(jedisPool != null){
                jedisPool.close();
            }
        }
    }
}
